package com.jinbooks.entity.customer;

import com.baomidou.mybatisplus.annotation.*;
import com.jinbooks.entity.BaseEntity;
import com.jinbooks.validate.EditGroup;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.io.Serial;

/**
 * 客户基本信息实体类
 *
 * @author wuyan
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString
@TableName("jbx_customer_basic")
public class CustomerBasic extends BaseEntity {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    @NotBlank(message = "ID不能为空", groups = {EditGroup.class})
    private String id;

    /**
     * 手机号码
     */
    private String phone;

    /**
     * 手机号码MD5
     */
    private String phoneMd5;

    /**
     * 客户标识（个人身份证号或企业营业执照信用码）需加密或脱敏
     */
    private String identifier;

    /**
     * 客户标识（明文）MD5
     */
    private String identifierMd5;

    /**
     * (明文手机号码+明文客户标识)MD5
     */
    private String phoneIdentifierMd5;

    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 客户类型
     */
    private String customerType;

    /**
     * 所属行业
     */
    private String industry;

    /**
     * 电子邮箱
     */
    private String email;

    /**
     * 官网网址
     */
    private String website;

    /**
     * 客户分组ID
     */
    private String segmentId;

    /**
     * 客户负责人
     */
    private String customerHead;

    /**
     * 来源渠道
     */
    private String customerFrom;

    /**
     * 来源商户编号
     */
    private String merchantCode;

    /**
     * 来源商户名称
     */
    private String merchantName;

    /**
     * 工作空间ID
     */
    private String workspaceId;

    /**
     * 删除标记：y-已删, n-正常
     */
    @TableField(fill = FieldFill.INSERT)
    @TableLogic(value = "n", delval = "y")
    private String deleted;
}